package service

import (
	"e_mall_server/common"
	"e_mall_server/dao/mysql"
	"e_mall_server/models"
)

/**
 * @Author: zhaobin
 * @Description TODO
 * @Date: 2022-05-19 15:55
 */

// LoginUser 用户登录信息验证
func LoginUser(p *models.UserLoginParam) (userInfo models.UserResponse, err error) {
	user, err := mysql.LoginUser(p)
	if err != nil {
		return
	}
	token, err := common.GenToken(user.Id, user.UserName)
	if err != nil {
		return
	}
	userInfo = models.UserResponse{
		UserId:   user.Id,
		Phone:    user.Phone,
		UserName: user.UserName,
		Token:    token,
	}
	return
}

// GetUserList 获取用户列表接口
func GetUserList() ([]models.User, error) {
	return mysql.GetUserList()
}

// AddUser 添加用户信息
func AddUser(User *models.User) error {
	// 1.判断用户是否存在
	if err := mysql.CheckUserExist(User.UserName); err != nil {
		// 数据库查询出错或者用户名已存在
		return err
	}
	return mysql.AddUser(User)
}

// UpdateUser 修改用户信息
func UpdateUser(User *models.User) int64 {
	return mysql.UpdateUser(User)
}

// DeleteUserById 通过用户id删除用户数据
func DeleteUserById(id int64) int64 {
	return mysql.DeleteUserById(id)
}

// GetUserDetailById 通过用户id获取用户详细信息
func GetUserDetailById(id int64) (models.User, error) {
	return mysql.GetUserDetailById(id)
}
